﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace KingerRobot.MexicoSailunWMS.Spi;

public interface ILogInfoManagerService
{
    /// <summary>
    /// 操作日志
    /// </summary>
    /// <param name="param"></param>
    /// <returns></returns>
    List<OperationLogBeans> QueryOperationLog(OperationLogParams param);

    /// <summary>
    /// 堆垛机日志
    /// </summary>
    /// <param name="param"></param>
    /// <returns></returns>
    List<CrnLogBeans> QueryCrnLog(CrnLogParam param);

    /// <summary>
    /// EMS日志
    /// </summary>
    /// <param name="param"></param>
    /// <returns></returns>
    List<EMSLogBeans> QueryEMSLog(EMSLogParam param);

    /// <summary>
    /// 旋转扫描日志
    /// </summary>
    /// <param name="param"></param>
    /// <returns></returns>
    List<ScannerLogBeans> QueryScannerLog(ScannerLogParam param);

    /// <summary>
    /// 翻胎日志
    /// </summary>
    /// <param name="param"></param>
    /// <returns></returns>
    List<TireTurnBeans> QueryTireTurnLog(TireTurnParam param);

    


}

#region beans

/// <summary>
/// 操作日志返回bean
/// </summary>
public class OperationLogBeans
{
    /// <summary>
    /// 主键
    /// </summary>
    public long? Id { get; set; }

    /// <summary>
    /// 操作事件
    /// </summary>
    public string OperationName { get; set; }

    /// <summary>
    /// Ip地址
    /// </summary>
    public string ClientIP { get; set; }

    /// <summary>
    /// 参数
    /// </summary>
    public string InParams { get; set; }

    /// <summary>
    /// 返回值
    /// </summary>
    public string OutParams { get; set; }

    /// <summary>
    /// 操作人员
    /// </summary>
    public string UserName { get; set; }

    /// <summary>
    /// 操作时间
    /// </summary>
    public DateTime? CreateTime { get; set; }

    /// <summary>
    /// 操作完成时间
    /// </summary>
    public DateTime? UpdateTime { get; set; }

    /// <summary>
    /// 操作状态
    /// </summary>
    public string OperationStatus { get; set; }

    /// <summary>
    /// 备注
    /// </summary>
    public string Remark { get; set; }
}

/// <summary>
/// 堆垛机日志
/// </summary>
public class CrnLogBeans
{
    /// <summary>
    /// 任务号
    /// </summary>
    public int? TaskNo { get; set; }

    /// <summary>
    /// 堆垛机
    /// </summary>
    public string CrnName { get; set; }

    /// <summary>
    /// 任务类型
    /// </summary>
    public string CmdType { get; set; }

    /// <summary>
    /// 任务状态
    /// </summary>
    public string TaskStatus { get; set; }

    /// <summary>
    /// 条码
    /// </summary>
    public string ProductCode { get; set; }

    /// <summary>
    /// 目标位
    /// </summary>
    public string LocName { get; set; }

    /// <summary>
    /// Spec码
    /// </summary>
    public string Spec { get; set; }

    /// <summary>
    /// 物料名
    /// </summary>
    public string MaterialName { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime? CreateTime { get; set; }

    /// <summary>
    /// 异常原因
    /// </summary>
    public string RemarkMemo { get; set; }
}

/// <summary>
/// EMS日志
/// </summary>
public class EMSLogBeans
{
    /// <summary>
    /// 任务号
    /// </summary>
    public int? TaskNo { get; set; }

    /// <summary>
    /// 条码
    /// </summary>
    public string ProductCode { get; set; }

    /// <summary>
    /// EMS
    /// </summary>
    public string EmsName { get; set; }

    /// <summary>
    /// 硫化机
    /// </summary>
    public string CuringCode { get; set; }

    /// <summary>
    /// 目标位
    /// </summary>
    public string TargetLoc { get; set; }

    /// <summary>
    /// 任务类型
    /// </summary>
    public string CmdType { get; set; }

    /// <summary>
    /// 任务状态
    /// </summary>
    public string TaskStatus { get; set; }

    /// <summary>
    /// 物料名
    /// </summary>
    public string MaterialName { get; set; }

    /// <summary>
    /// Spec码
    /// </summary>
    public string Spec { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime? CreateTime { get; set; }

    /// <summary>
    /// 异常原因
    /// </summary>
    public string RemarkMemo { get; set; }


}

/// <summary>
/// 旋转扫描日志
/// </summary>
public class ScannerLogBeans
{
    /// <summary>
    /// 任务号
    /// </summary>
    public int? TaskNo { get; set; }

    /// <summary>
    /// 条码
    /// </summary>
    public string ProductCode { get; set; }

    /// <summary>
    /// 旋转扫描
    /// </summary>
    public string ScannerName { get; set; }

    /// <summary>
    /// 任务类型
    /// </summary>
    public string CmdType { get; set; }

    /// <summary>
    /// 任务状态
    /// </summary>
    public string TaskStatus { get; set; }

    /// <summary>
    /// Spec码
    /// </summary>
    public string Spec { get; set; }

    /// <summary>
    /// 物料名
    /// </summary>
    public string MaterialName { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime? CreateTime { get; set; }

    /// <summary>
    /// 异常原因
    /// </summary>
    public string RemarkMemo { get; set; }
}

/// <summary>
/// 翻胎日志
/// </summary>
public class TireTurnBeans
{
    /// <summary>
    /// 任务号
    /// </summary>
    public int? TaskNo { get; set; }
    
    /// <summary>
    /// 条码
    /// </summary>
    public string ProductCode { get; set; }

    /// <summary>
    /// 硫化编号
    /// </summary>
    public string CuringCode { get; set; }

    /// <summary>
    /// 是否需要翻胎
    /// </summary>
    public string IsNeedTurn { get; set; }

    /// <summary>
    /// 目标位
    /// </summary>
    public string TargetName { get; set; }

    /// <summary>
    /// 异常原因
    /// </summary>
    public string RemarkMemo { get; set; }

    
}
#endregion


#region 参数

/// <summary>
/// 操作日志参数
/// </summary>
public class OperationLogParams
{
    /// <summary>
    /// 操作事件
    /// </summary>
    public string OperationName { get; set; }

    /// <summary>
    /// 开始时间
    /// </summary>
    public DateTime? StartTime { get; set; }

    /// <summary>
    /// 结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }

    /// <summary>
    /// 操作状态
    /// </summary>
    public  string OperationStatus { get; set; }

}

/// <summary>
/// 堆垛机日志参数
/// </summary>
public class CrnLogParam
{
    /// <summary>
    /// 任务号
    /// </summary>
    public int? TaskNo { get; set; }

    /// <summary>
    /// 堆垛机
    /// </summary>
    public string CrnName { get; set; }

    /// <summary>
    /// 任务类型
    /// </summary>
    public int? CmdType { get; set; }

    /// <summary>
    /// 任务状态
    /// </summary>
    public int? TaskStatus { get; set; }

    /// <summary>
    /// 条码
    /// </summary>
    public string ProductCode { get; set; }

    /// <summary>
    /// 目标位
    /// </summary>
    public string LocName { get; set; }

    /// <summary>
    /// Spec码
    /// </summary>
    public string Spec { get; set; }

    /// <summary>
    /// 物料名
    /// </summary>
    public string MaterialName { get; set; }

    /// <summary>
    /// 开始时间
    /// </summary>
    public DateTime? StartTime { get; set; }

    /// <summary>
    /// 结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }
}

/// <summary>
/// EMS日志参数
/// </summary>
public class EMSLogParam
{
    /// <summary>
    /// 任务号
    /// </summary>
    public int? TaskNo { get; set; }

    /// <summary>
    /// 条码
    /// </summary>
    public string ProductCode { get; set; }

    /// <summary>
    /// EMS
    /// </summary>
    public string EmsName { get; set; }

    /// <summary>
    /// 硫化机
    /// </summary>
    public string CuringCode { get; set; }

    /// <summary>
    /// 目标位
    /// </summary>
    public string TargetLoc { get; set; }

    /// <summary>
    /// 任务类型
    /// </summary>
    public int? CmdType { get; set; }

    /// <summary>
    /// 任务状态
    /// </summary>
    public int? TaskStatus { get; set; }

    /// <summary>
    /// 物料名
    /// </summary>
    public string MaterialName { get; set; }

    /// <summary>
    /// Spec码
    /// </summary>
    public string Spec { get; set; }

    /// <summary>
    /// 开始时间
    /// </summary>
    public DateTime? StartTime { get; set; }

    /// <summary>
    /// 结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }



}

/// <summary>
/// 旋转扫描日志参数
/// </summary>
public class ScannerLogParam
{
    /// <summary>
    /// 任务号
    /// </summary>
    public int? TaskNo { get; set; }

    /// <summary>
    /// 条码
    /// </summary>
    public string ProductCode { get; set; }

    /// <summary>
    /// 旋转扫描
    /// </summary>
    public string ScannerName { get; set; }

    /// <summary>
    /// 任务类型
    /// </summary>
    public int? CmdType { get; set; }

    /// <summary>
    /// 任务状态
    /// </summary>
    public int? TaskStatus { get; set; }

    /// <summary>
    /// Spec码
    /// </summary>
    public string Spec { get; set; }

    /// <summary>
    /// 物料名
    /// </summary>
    public string MaterialName { get; set; }

    /// <summary>
    /// 开始时间
    /// </summary>
    public DateTime? StartTime { get; set; }

    /// <summary>
    /// 结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }

}

public class TireTurnParam
{
    /// <summary>
    /// 任务号
    /// </summary>
    public int? TaskNo { get; set; }

    /// <summary>
    /// 条码
    /// </summary>
    public string ProductCode { get; set; }

    /// <summary>
    /// 硫化编号
    /// </summary>
    public string CuringCode { get; set; }

    /// <summary>
    /// 目标位
    /// </summary>
    public string TargetName { get; set; }

    /// <summary>
    /// 开始时间
    /// </summary>
    public DateTime? StartTime { get; set; }

    /// <summary>
    /// 结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }
}
#endregion